MoveLinearRelative

命令轴群之工具中心点自当前位置进行直线插补运动至指定坐标系之相对位置。给定之相对距离会被添加到当前设置位置。

语法

KsCommandStatus MoveLinearRelative(
     int Index,
     int Length,
     double* Distance,
     double Velocity,
     double Acceleration,
     double Deceleration,
     double Jerk,
     McCoordSystem CoordSystem,
     McBufferMode BufferMode,
     McTransitionMode TransitionMode,
     double* TransitionParameter
);

参数

Index [in]:轴组索引,索引以零为起点。最多可有 32 个轴组。

Length [in]:距离 (Distance) 阵列长度。

Distance [in]:指定坐标系中每个维度的相对距离阵列 [1..N],其中 N 为 64。

Velocity [in]:定义路径中坐标系路径的最大速度,永远为正值,非必要到达,[单位/秒]。

Acceleration [in]:最大加速度,永远为正值,非必要到达,单位由 McProfileType 类型决定,为 [单位/秒2] 或 [秒]。

Deceleration [in]:最大减速度,永远为正值,非必要到达,单位由 McProfileType 类型决定,为 [单位/秒2] 或 [秒]。

Jerk [in]:最大加加速度。永远为正值,非必要到达,单位由 McProfileType 类型决定,为 [单位/秒3] 或 [秒]。

CoordSystem [in]:座标系统,请见 McCoordSystem 类型。

BufferMode [in]:定义如何融合两功能的速度,请见 McBufferMode 类型。

TransitionMode [in]:插入转换曲线。请见 McTransitionMode 类型。

TransitionParameter [in]:转换模式的附加参数,若将 TransitionMode 设为 mcNone,则此参数无效。

回传值

返回 KsCommandStatus 结构。

备注

范例

VOID MoveRelative(INT Group, DOUBLE DistanceX, DOUBLE DistanceY) {
   DOUBLE Distance[2] = { DistanceX, DistanceY };

   //Start an relative move.
   KsCommandStatus move = WaitForCommand(30, TRUE, MoveLinearRelative(Group, 2, Distance, 
      3600, 36000, 36000, 3600000, 
      mcAxisCoordSystem, mcAborting, mcNone, NULL));

   DOUBLE Position[2] = { 0, 0 };
   GetGroupActualPosition(Group, mcAxisCoordSystem, mcActualValue, 2, Position);
   RtPrintf("Current Position: %d,%d\n", (int)Position[0], (int)Position[1]);
}

使用需求

  RT Win32
最低支援版本 4.0 4.0
标头档 ksmotion.h ksmotion.h
程式库 KsApi_Rtss.lib KsApi.lib

参见

MoveLinearAbsolute

MoveLinearAdditive